package com.lmx.repoDomain.tmodel;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ForeignKey;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

import com.lmx.repoDomain.tmodel.business.User;

import io.katharsis.resource.annotations.JsonApiIncludeByDefault;
import io.katharsis.resource.annotations.JsonApiLookupIncludeAutomatically;

// default package

import io.katharsis.resource.annotations.JsonApiResource;
import io.katharsis.resource.annotations.JsonApiToMany;
import io.katharsis.resource.annotations.JsonApiToOne;

/**
 * 业务办理表
 */
@Entity
@JsonApiResource(type = "customerbusinessflow")
@Table(name = "tnb_customer_businessflow")
// @JsonIgnoreProperties(value={"hibernateLazyInitializer","handler"})
public class CustomerBusinessFlow extends BaseEntity {

	private Integer lastUpdateDateTime;

	private User lastUpdateUser;

	private Integer createDateTime;// 创建日期

	private User createUser;//

	private String advTel;// 咨询人电话

	private String advName;// 咨询人姓名

	private Short isDirectOrder;// 是否直接预订

	private Short isDirectIn;// 是否直接预订

	private Integer orderDate;// 办理预定时间

	private Integer orderInTime;// 预定的 入住时间

	private String orderMoney;// 定金

	private Employee orderStaff;// 预定员工

	private Bed orderBed;// 预定床位号

	private String orderRemark;// 预定备注

	private Integer experienceDate;// 试住日期

	private Employee experienceStaff;// 办理试住员工

	private Integer experienceStartTime;// 试住开始日期

	private Integer experienceEndTime;// 试住结束日期

	private Bed experienceBed;// 试住床位号

	private String experiencePrice;// 试住价格

	private String experienceReferencePrice;// 试住参考价格

	private Dicttype experienceNursingGrade;// 试住护理等级

	private String experienceRemark;// 试住备注

	private Integer checkInDate;// 办理入住日期

	private Employee checkInStaff;// 办理入住员工号

	private Integer checkInStartTime;// 试住开始日期

	private Integer checkInEndTime;// 试住结束日期

	private Bed checkInBed;// 入住床位号

	private String checkInPrice;// 入住价格

	private String checkInReferencePrice;// 入住参考价格

	private Dicttype checkInNursingGrade;// 入住护理等级

	private String checkInRemark;// 试住备注

	private String leaveRemark;// 退住备注

	private Integer leaveDate;// 退住入住日期

	private Integer leaveRecordDate;// 退住登记日期

	private Employee leaveStaff;// 办理退住员工号

	private Dicttype leaveReason;// 退住原因

	private List<Dicttype> inPreference;// 入住偏好 huibati

	private String customerAddr;//

	private String customerBrith;

	private String customerCardCode;

	private String customerTel;

	private Dicttype customerEducation;

	private Dicttype customerGender;

	private String customerName;

	private Dicttype customerNative;// 籍贯

	private String customerPS;// 身体状况

	private Dicttype consultRelation;// 与老人关系

	private Dicttype customerSelfCareAbility;// 自理能力

	private Dicttype customerNationality;// 民族

	private Dicttype status;// 状态，0：新创建 1：已更新2：已预约 3：已试住4：已入住 5:退住99：废除

	private Dicttype leaveStatus;

	private String remark;// 备注

	private Customer customer;

	private ConsultInfo consultInfo;

	private String tempFlag;

	private DicttypeTenant diningStandard;// 餐饮标准

	private String tryContractNO;// 试住合同编号

	private String inContractNO;// 入住住合同编号

	private List<Dicttype> advWay;// 营销渠道 huibati

	// 新增
	private String guardianFirstName;// 联系人姓名

	private String guardianFirstCardCode;// 联系人身份证

	private Dicttype guardianFirstGener;// 联系人性别

	private String guardianFirstContact;// 联系人的联系方式

	private Dicttype firstRelation;// 联系人与老人关系

	private String guardianFirstWork;// 联系人工作单位

	private String guardianFirstAddress;// 联系人住址

	private Double bedPrice;// 床位实际价格

	private Double diningStandardPrice;// 餐饮实际价格

	private NursingLevel nursinglevel;// 护理等级

	private Double levelPrice;// 护理实际价格

	private String qrCodeUrl;// 二维码

	private String headImg;// 头像文件名（头像地址）

	private Dicttype customerStatus;

	private Integer customerAge;// 年龄

	private List<Dicttype> customerOldManType;

	private Dicttype customerMedicalInsuranceCategory;

	private Town town;

	private String backRemark;

	private String cancelRemark;

	private Dicttype orderStatus;// 预定状态

	private Dicttype chargeType;// 计费类型 月/日

	private Double totalPrice;// 总费用

	private Integer leaveDateReal;// 实际退住日期

	@Column(name = "leavedate_real")
	public Integer getLeaveDateReal() {
		return leaveDateReal;
	}

	public void setLeaveDateReal(Integer leaveDateReal) {
		this.leaveDateReal = leaveDateReal;
	}

	@Column(name = "total_price")
	public Double getTotalPrice() {
		return totalPrice;
	}

	public void setTotalPrice(Double totalPrice) {
		this.totalPrice = totalPrice;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.REFRESH)
	@Fetch(FetchMode.SELECT) // huibati
	@JoinColumn(name = "charge_type_id", foreignKey = @ForeignKey(name = "null"))
	public Dicttype getChargeType() {
		return chargeType;
	}

	public void setChargeType(Dicttype chargeType) {
		this.chargeType = chargeType;
	}

	@Column(name = "cancel_remark")
	public String getCancelRemark() {
		return cancelRemark;
	}

	public void setCancelRemark(String cancelRemark) {
		this.cancelRemark = cancelRemark;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.REFRESH)
	@Fetch(FetchMode.SELECT) // huibati
	@JoinColumn(name = "order_sataus_id", foreignKey = @ForeignKey(name = "null"))
	public Dicttype getOrderStatus() {
		return orderStatus;
	}

	public void setOrderStatus(Dicttype orderStatus) {
		this.orderStatus = orderStatus;
	}

	@Column(name = "back_remark")
	public String getBackRemark() {
		return backRemark;
	}

	public void setBackRemark(String backRemark) {
		if (backRemark == null || "".equals(backRemark))
			backRemark = "in";
		this.backRemark = backRemark;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.REFRESH)
	@Fetch(FetchMode.SELECT) // huibati
	@JoinColumn(name = "town_id", foreignKey = @ForeignKey(name = "null"))
	public Town getTown() {
		return town;
	}

	public void setTown(Town town) {
		this.town = town;
	}

	@JsonApiToMany
	@JsonApiIncludeByDefault
	@ManyToMany(cascade = CascadeType.REFRESH, fetch = FetchType.LAZY)
	@JoinTable(name = "tnb_customer_businessflow_oldmantype", joinColumns = {
			@JoinColumn(name = "flow_id", nullable = false, updatable = false, foreignKey = @ForeignKey(name = "null")) }, inverseJoinColumns = {
					@JoinColumn(name = "oldtype_id", nullable = false, updatable = false, foreignKey = @ForeignKey(name = "null")) })
	@Fetch(FetchMode.JOIN)
	public List<Dicttype> getCustomerOldManType() {
		return customerOldManType;
	}

	public void setCustomerOldManType(List<Dicttype> customerOldManType) {
		this.customerOldManType = customerOldManType;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.REFRESH)
	@Fetch(FetchMode.SELECT) // huibati
	@JoinColumn(name = "customerMedicalInsuranceCategory_id", foreignKey = @ForeignKey(name = "null"))
	public Dicttype getCustomerMedicalInsuranceCategory() {
		return customerMedicalInsuranceCategory;
	}

	public void setCustomerMedicalInsuranceCategory(Dicttype customerMedicalInsuranceCategory) {
		this.customerMedicalInsuranceCategory = customerMedicalInsuranceCategory;
	}

	@Column(name = "customer_age")
	public Integer getCustomerAge() {
		return customerAge;
	}

	public void setCustomerAge(Integer customerAge) {
		this.customerAge = customerAge;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.REFRESH)
	@Fetch(FetchMode.SELECT) // huibati
	@JoinColumn(name = "customerStatus_id", foreignKey = @ForeignKey(name = "null"))
	public Dicttype getCustomerStatus() {
		return customerStatus;
	}

	public void setCustomerStatus(Dicttype customerStatus) {
		this.customerStatus = customerStatus;
	}

	@Column(name = "guardianfirst_name")
	public String getGuardianFirstName() {
		return guardianFirstName;
	}

	public void setGuardianFirstName(String guardianFirstName) {
		this.guardianFirstName = guardianFirstName;
	}

	@Column(name = "guardianfirst_cardcode")
	public String getGuardianFirstCardCode() {
		return guardianFirstCardCode;
	}

	public void setGuardianFirstCardCode(String guardianFirstCardCode) {
		this.guardianFirstCardCode = guardianFirstCardCode;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.REFRESH)
	@Fetch(FetchMode.SELECT) // huibati
	@JoinColumn(name = "guardianfirst_gener_id", foreignKey = @ForeignKey(name = "null"))
	public Dicttype getGuardianFirstGener() {
		return guardianFirstGener;
	}

	public void setGuardianFirstGener(Dicttype guardianFirstGener) {
		this.guardianFirstGener = guardianFirstGener;
	}

	@Column(name = "guardianfirst_contact")
	public String getGuardianFirstContact() {
		return guardianFirstContact;
	}

	public void setGuardianFirstContact(String guardianFirstContact) {
		this.guardianFirstContact = guardianFirstContact;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.REFRESH)
	@Fetch(FetchMode.SELECT) // huibati
	@JoinColumn(name = "firstRelation_id", foreignKey = @ForeignKey(name = "null"))
	public Dicttype getFirstRelation() {
		return firstRelation;
	}

	public void setFirstRelation(Dicttype firstRelation) {
		this.firstRelation = firstRelation;
	}

	@Column(name = "guardianfirst_work")
	public String getGuardianFirstWork() {
		return guardianFirstWork;
	}

	public void setGuardianFirstWork(String guardianFirstWork) {
		this.guardianFirstWork = guardianFirstWork;
	}

	@Column(name = "guardianfirst_address")
	public String getGuardianFirstAddress() {
		return guardianFirstAddress;
	}

	public void setGuardianFirstAddress(String guardianFirstAddress) {
		this.guardianFirstAddress = guardianFirstAddress;
	}

	@Column(name = "bed_price")
	public Double getBedPrice() {
		return bedPrice;
	}

	public void setBedPrice(Double bedPrice) {
		this.bedPrice = bedPrice;
	}

	@Column(name = "diningstandard_price")
	public Double getDiningStandardPrice() {
		return diningStandardPrice;
	}

	public void setDiningStandardPrice(Double diningStandardPrice) {
		this.diningStandardPrice = diningStandardPrice;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@Fetch(FetchMode.JOIN)
	@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
	@JoinColumn(name = "nursinglevel_id", nullable = true, foreignKey = @ForeignKey(name = "null"))
	public NursingLevel getNursinglevel() {
		return nursinglevel;
	}

	public void setNursinglevel(NursingLevel nursinglevel) {
		this.nursinglevel = nursinglevel;
	}

	@Column(name = "level_price")
	public Double getLevelPrice() {
		return levelPrice;
	}

	public void setLevelPrice(Double levelPrice) {
		this.levelPrice = levelPrice;
	}

	@Column(name = "qrcode_url")
	public String getQrCodeUrl() {
		return qrCodeUrl;
	}

	public void setQrCodeUrl(String qrCodeUrl) {
		this.qrCodeUrl = qrCodeUrl;
	}

	@Column(name = "head_img")
	public String getHeadImg() {
		return headImg;
	}

	public void setHeadImg(String headImg) {
		this.headImg = headImg;
	}

	// ---------------------
	@JsonApiToMany
	@JsonApiIncludeByDefault
	@ManyToMany(cascade = CascadeType.REFRESH, fetch = FetchType.LAZY)
	@JoinTable(name = "tnb_businessflow_adv", joinColumns = {
			@JoinColumn(name = "flow_id", nullable = false, updatable = false, foreignKey = @ForeignKey(name = "null")) }, inverseJoinColumns = {
					@JoinColumn(name = "advway_id", nullable = false, updatable = false, foreignKey = @ForeignKey(name = "null")) })
	@Fetch(FetchMode.JOIN)
	public List<Dicttype> getAdvWay() {
		return advWay;
	}

	public void setAdvWay(List<Dicttype> advWay) {
		this.advWay = advWay;
	}

	@Column(name = "try_contract_no")
	public String getTryContractNO() {
		return tryContractNO;
	}

	public void setTryContractNO(String tryContractNO) {
		this.tryContractNO = tryContractNO;
	}

	@Column(name = "in_contract_no")
	public String getInContractNO() {
		return inContractNO;
	}

	public void setInContractNO(String inContractNO) {
		this.inContractNO = inContractNO;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "leavereason_id", foreignKey = @ForeignKey(name = "null"))
	@Fetch(FetchMode.JOIN)
	public Dicttype getLeaveReason() {
		return leaveReason;
	}

	public void setLeaveReason(Dicttype leaveReason) {
		this.leaveReason = leaveReason;
	}

	// @JsonApiToOne
	// @JsonApiIncludeByDefault
	// @ManyToOne(fetch = FetchType.LAZY)
	// @JoinColumn(name = "inpreference_id", foreignKey = @ForeignKey(name =
	// "null"))
	// @Fetch(FetchMode.JOIN) //huibati
	@JsonApiToMany
	@JsonApiIncludeByDefault
	@ManyToMany(cascade = CascadeType.REFRESH, fetch = FetchType.LAZY)
	@JoinTable(name = "tnb_customer_businessflow_inpreference", joinColumns = {
			@JoinColumn(name = "businessflow_id", nullable = false, updatable = false, foreignKey = @ForeignKey(name = "null")) }, inverseJoinColumns = {
					@JoinColumn(name = "inpreference_id", nullable = false, updatable = false, foreignKey = @ForeignKey(name = "null")) })
	@Fetch(FetchMode.JOIN)
	public List<Dicttype> getInPreference() {
		return inPreference;
	}

	public void setInPreference(List<Dicttype> inPreference) {
		this.inPreference = inPreference;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
	@Fetch(FetchMode.JOIN)
	@JoinColumn(name = "diningStandard_id", foreignKey = @ForeignKey(name = "null"))
	public DicttypeTenant getDiningStandard() {
		return diningStandard;
	}

	public void setDiningStandard(DicttypeTenant diningStandard) {
		this.diningStandard = diningStandard;
	}

	@Column(name = "temp_flag")
	public String getTempFlag() {
		return tempFlag;
	}

	public void setTempFlag(String tempFlag) {
		if (tempFlag == null || "".equals(tempFlag)) {
			tempFlag = "0";
		}
		this.tempFlag = tempFlag;
	}

	@JsonApiToOne
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "consultinfo_id", foreignKey = @ForeignKey(name = "null"))
	public ConsultInfo getConsultInfo() {
		return consultInfo;
	}

	public void setConsultInfo(ConsultInfo consultInfo) {
		this.consultInfo = consultInfo;
	}

	@JsonApiIncludeByDefault
	@JsonApiToOne
	@Fetch(FetchMode.JOIN)
	@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
	@JoinColumn(name = "customer_id", foreignKey = @ForeignKey(name = "null"))
	public Customer getCustomer() {
		return customer;
	}

	public void setCustomer(Customer customer) {
		this.customer = customer;
	}

	@Column(name = "createDateTime")
	public Integer getCreateDateTime() {
		return createDateTime;
	}

	public void setCreateDateTime(Integer createDateTime) {
		this.createDateTime = createDateTime;
	}

	@Column(name = "lastUpdateDateTime")
	public Integer getLastUpdateDateTime() {
		return lastUpdateDateTime;
	}

	public void setLastUpdateDateTime(Integer lastUpdateDateTime) {
		this.lastUpdateDateTime = lastUpdateDateTime;
	}

	@JsonApiToOne
	@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
	@JoinColumn(name = "createuser_id", foreignKey = @ForeignKey(name = "null"))
	public User getCreateUser() {
		return createUser;
	}

	public void setCreateUser(User createUser) {
		this.createUser = createUser;
	}

	@JsonApiToOne
	@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
	@JoinColumn(name = "lastupdateuser_id", foreignKey = @ForeignKey(name = "null"))
	public User getLastUpdateUser() {
		return lastUpdateUser;
	}

	public void setLastUpdateUser(User lastUpdateUser) {
		this.lastUpdateUser = lastUpdateUser;
	}

	@Column(name = "remark")
	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	@Column(name = "consult_tel")
	public String getAdvTel() {
		return advTel;
	}

	public void setAdvTel(String advTel) {
		this.advTel = advTel;
	}

	@Column(name = "consult_name")
	public String getAdvName() {
		return advName;
	}

	public void setAdvName(String advName) {
		this.advName = advName;
	}

	@JsonApiToOne
	@JsonApiLookupIncludeAutomatically(overwrite = true)
	@Fetch(FetchMode.JOIN)
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "experience_bed_id", foreignKey = @ForeignKey(name = "null"))
	public Bed getExperienceBed() {
		return experienceBed;
	}

	public void setExperienceBed(Bed experienceBed) {
		this.experienceBed = experienceBed;
	}

	@Column(name = "checkin_time")
	public Integer getCheckInDate() {
		return checkInDate;
	}

	public void setCheckInDate(Integer checkInDate) {
		this.checkInDate = checkInDate;
	}

	@JsonApiToOne
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "checkin_userid", foreignKey = @ForeignKey(name = "null"))
	public Employee getCheckInStaff() {
		return checkInStaff;
	}

	public void setCheckInStaff(Employee checkInStaff) {
		this.checkInStaff = checkInStaff;
	}

	@Column(name = "experience_time")
	public Integer getExperienceDate() {
		return experienceDate;
	}

	public void setExperienceDate(Integer experienceDate) {
		this.experienceDate = experienceDate;
	}

	@JsonApiToOne
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "experience_userid", foreignKey = @ForeignKey(name = "null"))
	public Employee getExperienceStaff() {
		return experienceStaff;
	}

	public void setExperienceStaff(Employee experienceStaff) {
		this.experienceStaff = experienceStaff;
	}

	@Column(name = "customer_address")
	public String getCustomerAddr() {
		return customerAddr;
	}

	public void setCustomerAddr(String customerAddr) {
		this.customerAddr = customerAddr;
	}

	@Column(name = "customer_birth")
	public String getCustomerBrith() {
		return customerBrith;
	}

	public void setCustomerBrith(String customerBrith) {
		this.customerBrith = customerBrith;
	}

	@Column(name = "customer_cardcode")
	public String getCustomerCardCode() {
		return customerCardCode;
	}

	public void setCustomerCardCode(String customerCardCode) {
		this.customerCardCode = customerCardCode;
	}

	@Column(name = "customer_tel")
	public String getCustomerTel() {
		return customerTel;
	}

	public void setCustomerTel(String customerTel) {
		this.customerTel = customerTel;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "customer_educationid", foreignKey = @ForeignKey(name = "null"))
	@Fetch(FetchMode.JOIN)
	public Dicttype getCustomerEducation() {
		return customerEducation;
	}

	public void setCustomerEducation(Dicttype customerEducation) {
		this.customerEducation = customerEducation;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "customer_genderid", foreignKey = @ForeignKey(name = "null"))
	@Fetch(FetchMode.JOIN)
	public Dicttype getCustomerGender() {
		return customerGender;
	}

	public void setCustomerGender(Dicttype customerGender) {
		this.customerGender = customerGender;
	}

	@Column(name = "customer_name")
	public String getCustomerName() {
		return customerName;
	}

	public void setCustomerName(String customerName) {
		this.customerName = customerName;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "customer_nativeid", foreignKey = @ForeignKey(name = "null"))
	@Fetch(FetchMode.JOIN)
	public Dicttype getCustomerNative() {
		return customerNative;
	}

	public void setCustomerNative(Dicttype customerNative) {
		this.customerNative = customerNative;
	}

	@Column(name = "customer_ps")
	public String getCustomerPS() {
		return customerPS;
	}

	public void setCustomerPS(String customerPS) {
		this.customerPS = customerPS;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "customer_relationid", foreignKey = @ForeignKey(name = "null"))
	@Fetch(FetchMode.JOIN)
	public Dicttype getConsultRelation() {
		return consultRelation;
	}

	public void setConsultRelation(Dicttype consultRelation) {
		this.consultRelation = consultRelation;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "customer_selfcareabilityid", foreignKey = @ForeignKey(name = "null"))
	@Fetch(FetchMode.JOIN)
	public Dicttype getCustomerSelfCareAbility() {
		return customerSelfCareAbility;
	}

	public void setCustomerSelfCareAbility(Dicttype customerSelfCareAbility) {
		this.customerSelfCareAbility = customerSelfCareAbility;
	}

	@Column(name = "directorder_flag")
	public Short getIsDirectOrder() {
		return isDirectOrder;
	}

	public void setIsDirectOrder(Short isDirectOrder) {
		if (isDirectOrder == null)
			isDirectOrder = 0;
		this.isDirectOrder = isDirectOrder;
	}

	@Column(name = "directin_flag")
	public Short getIsDirectIn() {
		return isDirectIn;
	}

	public void setIsDirectIn(Short isDirectIn) {
		if (isDirectIn == null)
			isDirectIn = 0;
		this.isDirectIn = isDirectIn;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "customer_nationalityid", foreignKey = @ForeignKey(name = "null"))
	@Fetch(FetchMode.JOIN)
	public Dicttype getCustomerNationality() {
		return customerNationality;
	}

	public void setCustomerNationality(Dicttype customerNationality) {
		this.customerNationality = customerNationality;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "checkin_nursinggrade_id", foreignKey = @ForeignKey(name = "null"))
	@Fetch(FetchMode.JOIN)
	public Dicttype getCheckInNursingGrade() {
		return checkInNursingGrade;
	}

	public void setCheckInNursingGrade(Dicttype checkInNursingGrade) {
		this.checkInNursingGrade = checkInNursingGrade;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "experience_nursinggrade_id", foreignKey = @ForeignKey(name = "null"))
	@Fetch(FetchMode.JOIN)
	public Dicttype getExperienceNursingGrade() {
		return experienceNursingGrade;
	}

	public void setExperienceNursingGrade(Dicttype experienceNursingGrade) {
		this.experienceNursingGrade = experienceNursingGrade;
	}

	@Column(name = "order_time")
	public Integer getOrderDate() {
		return orderDate;
	}

	public void setOrderDate(Integer orderDate) {
		this.orderDate = orderDate;
	}

	@Column(name = "order_money")
	public String getOrderMoney() {
		return orderMoney;
	}

	public void setOrderMoney(String orderMoney) {
		this.orderMoney = orderMoney;
	}

	@JsonApiToOne
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "order_userid", foreignKey = @ForeignKey(name = "null"))
	public Employee getOrderStaff() {
		return orderStaff;
	}

	public void setOrderStaff(Employee orderStaff) {
		this.orderStaff = orderStaff;
	}

	@Column(name = "experience_referenceprice")
	public String getExperienceReferencePrice() {
		return experienceReferencePrice;
	}

	public void setExperienceReferencePrice(String experienceReferencePrice) {
		this.experienceReferencePrice = experienceReferencePrice;
	}

	@Column(name = "experienceprice")
	public String getExperiencePrice() {
		return experiencePrice;
	}

	public void setExperiencePrice(String experiencePrice) {
		this.experiencePrice = experiencePrice;
	}

	@Column(name = "checkin_referenceprice")
	public String getCheckInReferencePrice() {
		return checkInReferencePrice;
	}

	public void setCheckInReferencePrice(String checkInReferencePrice) {
		this.checkInReferencePrice = checkInReferencePrice;
	}

	@Column(name = "checkinprice")
	public String getCheckInPrice() {
		return checkInPrice;
	}

	public void setCheckInPrice(String checkInPrice) {
		this.checkInPrice = checkInPrice;
	}

	@Column(name = "order_in_time")
	public Integer getOrderInTime() {
		return orderInTime;
	}

	public void setOrderInTime(Integer orderInTime) {
		this.orderInTime = orderInTime;
	}

	@JsonApiToOne
	@JsonApiLookupIncludeAutomatically(overwrite = true)
	@Fetch(FetchMode.JOIN)
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "order_bed_id", foreignKey = @ForeignKey(name = "null"))
	public Bed getOrderBed() {
		return orderBed;
	}

	public void setOrderBed(Bed orderBed) {
		this.orderBed = orderBed;
	}

	@Column(name = "order_remark")
	public String getOrderRemark() {
		return orderRemark;
	}

	public void setOrderRemark(String orderRemark) {
		this.orderRemark = orderRemark;
	}

	@Column(name = "experience_start_time")
	public Integer getExperienceStartTime() {
		return experienceStartTime;
	}

	public void setExperienceStartTime(Integer experienceStartTime) {
		this.experienceStartTime = experienceStartTime;
	}

	@Column(name = "experience_end_time")
	public Integer getExperienceEndTime() {
		return experienceEndTime;
	}

	public void setExperienceEndTime(Integer experienceEndTime) {
		this.experienceEndTime = experienceEndTime;
	}

	@Column(name = "experience_remark")
	public String getExperienceRemark() {
		return experienceRemark;
	}

	public void setExperienceRemark(String experienceRemark) {
		this.experienceRemark = experienceRemark;
	}

	@Column(name = "checkin_start_time")
	public Integer getCheckInStartTime() {
		return checkInStartTime;
	}

	public void setCheckInStartTime(Integer checkInStartTime) {
		this.checkInStartTime = checkInStartTime;
	}

	@Column(name = "checkin_end_time")
	public Integer getCheckInEndTime() {
		return checkInEndTime;
	}

	public void setCheckInEndTime(Integer checkInEndTime) {
		this.checkInEndTime = checkInEndTime;
	}

	@JsonApiToOne
	@JsonApiLookupIncludeAutomatically(overwrite = true)
	@Fetch(FetchMode.JOIN)
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "checkin_bed_id", foreignKey = @ForeignKey(name = "null"))
	public Bed getCheckInBed() {
		return checkInBed;
	}

	public void setCheckInBed(Bed checkInBed) {
		this.checkInBed = checkInBed;
	}

	@Column(name = "checkin_remark")
	public String getCheckInRemark() {
		return checkInRemark;
	}

	public void setCheckInRemark(String checkInRemark) {
		this.checkInRemark = checkInRemark;
	}

	@Column(name = "leave_remark")
	public String getLeaveRemark() {
		return leaveRemark;
	}

	public void setLeaveRemark(String leaveRemark) {
		this.leaveRemark = leaveRemark;
	}

	@Column(name = "leave_date")
	public Integer getLeaveDate() {
		return leaveDate;
	}

	public void setLeaveDate(Integer leaveDate) {
		this.leaveDate = leaveDate;
	}

	@Column(name = "leave_record_date")
	public Integer getLeaveRecordDate() {
		return leaveRecordDate;
	}

	public void setLeaveRecordDate(Integer leaveRecordDate) {
		this.leaveRecordDate = leaveRecordDate;
	}

	@JsonApiToOne
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "leave_userid", foreignKey = @ForeignKey(name = "null"))
	public Employee getLeaveStaff() {
		return leaveStaff;
	}

	public void setLeaveStaff(Employee leaveStaff) {
		this.leaveStaff = leaveStaff;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "status_id", foreignKey = @ForeignKey(name = "null"))
	@Fetch(FetchMode.JOIN)
	public Dicttype getStatus() {
		return status;
	}

	public void setStatus(Dicttype status) {
		this.status = status;
	}

	@JsonApiToOne
	@JsonApiIncludeByDefault
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "leave_status", foreignKey = @ForeignKey(name = "null"))
	@Fetch(FetchMode.JOIN)
	public Dicttype getLeaveStatus() {
		return leaveStatus;
	}

	public void setLeaveStatus(Dicttype leaveStatus) {
		this.leaveStatus = leaveStatus;
	}
}